﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ObjectManager;
using Process;

namespace QuanLyDiem
{
    public partial class frmMonHoc_Them : Form
    {
        private static frmMonHoc_Them frm = null;
        private BoMon bomon = new BoMon();
        private MonHoc monhoc = new MonHoc();

        private frmMonHoc_Them()
        {
            InitializeComponent();
        }

        public static frmMonHoc_Them Create()
        {
            return Create(false);
        }

        public static frmMonHoc_Them Create(bool child)
        {
            if (frm == null)
            {
                frm = new frmMonHoc_Them();
            }
            if (child)
            {
                frm.ControlBox = false;
                frm.MinimizeBox = false;
                frm.MaximizeBox = false;
                frm.WindowState = FormWindowState.Maximized;
            }
            return frm;
        }

        private void frmMonHoc_Them_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (frm != null)
            {
                frm.Dispose();
                frm = null;
            }
        }

        private void MaMonHoc()
        {
            txtMa.Text = monhoc.MaTiep().ToString();
        }

        private void ClearData()
        {
            MaMonHoc();
            txtTen.Text = "";
            txtSoTC.Text = "";
            txtDiemQT.Text = "";
            txtDiemT.Text = "";
            txtGhiChu.Text = "";
            if (cmbBoMon.Items.Count > 0)
            {
                cmbBoMon.SelectedIndex = 0;
            }
        }

        private void btnDong_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnHuy_Click(object sender, EventArgs e)
        {
            ClearData();
        }

        private void txtDiemQT_Leave(object sender, EventArgs e)
        {
            if (txtDiemQT.Text != "0")
            {
                if (Convert.ToDouble(txtDiemQT.Text.Replace('.', ',')) > 1)
                {
                    MessageBox.Show("Hệ số điểm quá trình phải nhỏ hơn 1", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txtDiemQT.Focus();
                    return;
                }
                string[] temp = txtDiemQT.Text.Split('.', ',');
                int DiemQT = int.Parse(temp[1]);
                string DiemT = "0." + (10 - DiemQT).ToString();
                txtDiemT.Text = DiemT;
            }
        }

        private void btnThem_Click(object sender, EventArgs e)
        {
            MonHoc monhoc = new MonHoc();
            monhoc.ThongTin.Ten = txtTen.Text;
            monhoc.ThongTin.SoTinChi = int.Parse(txtSoTC.Text);
            monhoc.ThongTin.HeSoDiemQT = txtDiemQT.Text;
            monhoc.ThongTin.BoMon = cmbBoMon.Text;
            monhoc.ThongTin.GhiChu = txtGhiChu.Text;
            int check = monhoc.Add();
            if (check > 0)
            {
                MessageBox.Show("Đã thêm thành công môn học", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                ClearData();
            }
            else
            {
                MessageBox.Show("Có vấn đề khi thêm", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

        private void frmMonHoc_Them_Load(object sender, EventArgs e)
        {
            cmbBoMon.DataSource = bomon.ListName();
            ClearData();
        }

        private void txtDiemQT_TextChanged(object sender, EventArgs e)
        {
            txtDiemQT.Text = txtDiemQT.Text.Trim();
            if (!xString.IsNumber(txtDiemQT.Text, StyleNumber.REAL))
            {
                MessageBox.Show("Bạn chỉ được nhập số", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                txtDiemQT.Text = txtDiemQT.Text.Trim().Substring(0, txtDiemQT.Text.Trim().Length - 1);
                txtDiemQT.Select(txtDiemQT.Text.Length, 0);
            }
        }

        private void txtSoTC_TextChanged(object sender, EventArgs e)
        {
            txtSoTC.Text = txtSoTC.Text.Trim();
            if (!string.IsNullOrEmpty(txtSoTC.Text))
            {
                if (!xString.IsNumber(txtSoTC.Text, StyleNumber.INTEGER))
                {
                    MessageBox.Show("Bạn chỉ được nhập số", "Thông báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    txtSoTC.Text = txtSoTC.Text.Trim().Substring(0, txtSoTC.Text.Trim().Length - 1);
                    txtSoTC.Select(txtSoTC.Text.Length, 0);
                }
            }
        }
    }
}
